import axios from 'axios';
import Vue from 'vue';

axios.defaults.baseURL = '/api';

// 请求拦截器
// 如果 sessionStorage 中有 token，就将其添加到请求 header 中，为了能够通过后台身份校验中间件
axios.interceptors.request.use((config) => {
    const token = window.sessionStorage.getItem('token');
    if (token) {
        config.headers.token = token;
    }
    return config;
});

// 响应拦截器
// 如果发现，后台返回未登录的 401 状态码，就跳转到登录页面
axios.interceptors.response.use(
    (response) => {
        // 未登录，跳转到登录页面进行登录
        if (response.code === 401) {
            window.location.href = '/login';
        }
        return response.data;
    },
    (error) => {
        console.log(error);
    },
);

// 将 axios 挂载到 Vue 构造函数上，这样 Vue 的实例就都可以使用了（每个组件都是 Vue 实例）
Vue.prototype.$http = axios;
